package com.lzy.product.apis;

import com.github.pagehelper.PageInfo;
import com.lzy.framework.core.orm.db.Pager;
import com.lzy.product.dtos.OrderProductDto;

import java.util.List;

/**
 * Created by WIN7 on 2017/11/29.
 */
public interface OrderProductServiceApi extends BaseServiceApi<OrderProductDto> {

    /**
     * 根据条件查询订单列表
     *
     * @param pager
     * @param dto
     * @return
     */
    PageInfo<OrderProductDto> selectList(Pager pager, OrderProductDto dto);

    /**
     * 查询该分类下的产品的订单列表
     *
     * @return
     */
    List<OrderProductDto> selectListByClassifyId(OrderProductDto dto, Long classifyId);

    /**
     * 计算分利
     *
     * @param orderDto
     */
    Boolean calculateProfit(OrderProductDto orderDto);

    /**
     * 查询付款之后的订单客户列表（按客户编号分组）
     *
     * @param pager
     * @param orderProductDto
     * @return
     */
    PageInfo<OrderProductDto> selectMemberList(Pager pager, OrderProductDto orderProductDto);

    /**
     * 查询付款之后的客户订单列表
     *
     * @param orderProductDto
     * @return
     */
    PageInfo<OrderProductDto> selectMemberListByCond(OrderProductDto orderProductDto);

    /**
     * 查询付款之后的客户订单合同列表
     *
     * @param pager
     * @param orderProductDto
     * @return
     */
    PageInfo<OrderProductDto> selectMemberOrderList(Pager pager, OrderProductDto orderProductDto);

    /**
     * 根据产品id获取该产品的销售量
     * @param dto
     * @return
     */
    Integer selectNumberByProductId(OrderProductDto dto);

    /**
     * 根据用户id获取序列号
     * @param memberId
     * @return
     */
    String selectSerialIdByMemberId(Long memberId);
}
